/*
 * Created by LiuYou on 2020/12/15.
 *
 */

#ifndef EFFECTIVE_CPP_2_PC_HPP
#define EFFECTIVE_CPP_2_PC_HPP

#include <memory>

namespace Pc {
    class Display;

    class GraphicsCard;

    class Pc {
    public:
        Pc(std::shared_ptr<Display> sharedPtrDisplay,
           std::shared_ptr<GraphicsCard>&& sharedPtrGraphicsCard) noexcept;

        virtual ~Pc();

        void getDisplayShow();

        void getGraphicsCardShow();

        const std::shared_ptr<Display>& getSharedPtrDisplay() const;

        const std::shared_ptr<GraphicsCard>& getSharedPtrGraphicsCard() const;
/*        Display getDisplay();

        GraphicsCard getGraphicsCard();*/

    private:
        std::shared_ptr<Display> sharedPtrDisplay;
        std::shared_ptr<GraphicsCard> sharedPtrGraphicsCard;
    };

}


#endif //EFFECTIVE_CPP_2_PC_HPP
